Numerical method for solving the two-dimensional riemann problem to simulate inviscid subsonic flows

ABSTRACT

This invention relates to the numerical method for simulating inviscid subsonic flows by solving two-dimensional Riemann problem. this invention transforms the Euler equations into a stream-function plane and solve the equations under an uniform computing grid by solving the two-dimensional Riemann problem across streamlines and the two-dimensional Riemann problem along streamlines.

FIELD OF THE INVENTION

This invention, belonging to computational fluid dynamics (CFD) domain, relates to a numerical method for solving two-dimensional Riemann problem when solving the fluid flow governing equation. This method is implemented using computer language codes and the codes are run on computer to simulate inviscid subsonic flows.

BACKGROUND OF THE INVENTION

The Riemann Problem originally was studied as a physical phenomenon of gas flows in a one-dimensional tube. In the tube, the compressed gas produces shock, across which the velocity, density, pressure, and entropy are discontinuous. Georg Friedrich Bernhard Riemann (1826˜1866) had extensively studied this flow phenomena, and proposed the method to solve an initial value problem for the one-dimensional Euler equations, which is also called the Riemann problem. The FIG. 1(a) is the physical model of the Riemann problem. In a one-dimensional tube (1), there are two physical states, left state Q_(L)=[ρ_(L), u_(L), p_(L)] and right state Q_(R)=[ρ_(R), u_(R), p_(R)] divided by a diaphragm (2) on the center. ρ, u, p present the density, velocity and pressure; the subscript L and R for the left state and right state respectively. If there exist difference between the left and right states, rupture of the diaphragm generates a nearly centered time-dependent wave system. Based on this physical model, Riemann built the analytical solution for the one-dimensional Euler equations for compressible inviscid flows.

The FIG. 1 (b) presents the definition of the Riemann problem and the application to solving the one-dimensional Euler equations. x-direction is the flowing direction and t direction is the time. At the rupture moment of the diaphragm, the zero time, the generated wave system typically consists of a expansion wave, a shock wave at the left or the right. between the left and right waves, the star state, marked with the subscript *, is divided by a middle wave into the star left Q_(L*)=[ρ_(L*), u_(*), p_(*)] and star right Q_(R*)=[ρ_(R*), u_(*), p_(*)]. Riemann obtained the four kinds analytical solutions of the Euler equations and their judgment conditions at this situation. This work laid the foundations of the theory of the hyperbolic conservation law for the partial differential equations and a class of characteristics-based numerical method for fluid flow governing equations.

The main task for computational fluid dynamics (CFD) is to construct numerical method to solve the governing equations of fluid flows, such as the Euler equations for inviscid flows, in which the spatial discretization for the convective flux term is the most difficult. Most numerical computation is implemented in the Cartesian coordinator system, which needs to generate the computing grid according to the computational domain in advance. The computing grid forms the computing cells. Across the cell interfaces of the computing cell, the convective flux exists since the fluid particles passing over. It is this convective flux that causes severe numerical diffusion in the numerical solutions because the numerical diffusion is directly associated with the error resulting from numerically approximating this term. Since the last century, the primary CFD efforts of algorithm researchers had been concentrated on developing more robust, accurate, and efficient ways to reduce the diffusion. In particular, a class of upwind methods had a great deal of success in solving fluid flows governing equations, because the upwind methods reasonably represent the characteristics of the convective flux.

Among them, typically, the Godunov method [1], based on solving the Riemann problem on the cell interfaces, gives the most accurate results. Until publicly known relative technology, for the multi-dimensional computation, such as two-dimension, it needs to solve the Riemann problem alternatively along the different coordinator directions. However, like shown in the FIG. 2 (a), the interface AB generally is not perpendicular to the velocity vector V, so that it needs to project two velocity components u, v of V in the Cartesian coordinator system (x-y) into the (ξ-η) coordinator system, which is orthogonal to AB and produce u1, u2 and v1, v2, like shown in the FIG. 2 (b). In the ξ-direction, the summation of u1, v1 is considered as the left state in the Riemann problem; while that of u2, v2 is done as constant value even across shock. This scheme is obviously violates the entropy increase principle and introduces error in numerical solution. The stronger the shock is, the bigger the error is.

To minimize this error, this invention presents a numerical solver of the two-dimensional Riemann problem when solving the two-dimensional Euler equation to simulate inviscid subsonic flows.

DETAILED DESCRIPTION OF PARTICULAR EMBODIMENTS OF THE INVENTION

This invention stars from the time-dependent Euler equations in differential conservation form in the Eulerian plane for two-dimensional unsteady inviscid compressible flows

$\begin{matrix} {{{\frac{\partial f}{\partial t} + \frac{\partial F}{\partial x} + \frac{\partial G}{\partial y}} = 0},} & (1) \end{matrix}$

where f is the conservation variables vector; F, G are the convection fluxes in the x, y direction in the Cartesian coordinator system. In detail,

$\begin{matrix} {{f = \begin{bmatrix} \rho \\ {\rho \; u} \\ {{\rho \; v}\;} \\ {\rho \; E} \end{bmatrix}},{F = \begin{bmatrix} {\rho \; u} \\ {{\rho \; u^{2}} + p} \\ {\rho \; {uv}} \\ {\left( {{\rho \; E} + p} \right)u} \end{bmatrix}},{G = \begin{bmatrix} {\rho \; v} \\ {\rho \; {uv}} \\ {{\rho \; v^{2}} + p} \\ {\left( {{\rho \; E} + p} \right)v} \end{bmatrix}},} & (2) \end{matrix}$

where the variables t, u, v, ρ and p are respectively the time, components of flow velocity V in the x, y direction in the Cartesian coordinator system, fluid density and pressure. The total energy E and enthalpy H are

$\begin{matrix} {{E = {{\frac{1}{2}\left( {u^{2} + v^{2}} \right)} + {\frac{1}{\gamma - 1}\frac{p}{\rho}}}},{H = {{E + \frac{p}{\rho}} = {\frac{u^{2} + v^{2}}{2} + {\frac{\gamma}{\gamma - 1}\frac{r}{\rho}}}}},} & (3) \end{matrix}$

In above equation γ is the specific heat ratio.

This invention creates a numerical solver of the two-dimensional Riemann problem for calculating the convection fluxes F and G when solving the equation (1).

Construction of the Present Numerical Solver

According to the FIG. 3, there is a particle A, with a velocity vector V, on a streamline in the x-y plane, the Cartesian coordinator system. Firstly, another coordinator system, λ-ξ plane, named as the streamline plane, is built, where the coordinator λ, parallel the V direction, presents the particle traveling distance; while ξ, perpendicular the V dose the stream-function. In the λ-ξ plane, the time variable τ has the same dimension as time term t. The Jacobian matrix of the transformation from coordinates (t, x, y) to (τ, λ, ξ) can be written as

$\begin{matrix} {{J = {\frac{\partial\left( {t,x,y} \right)}{\partial\left( {\tau,\lambda,\xi} \right)} = \begin{bmatrix} 1 & 0 & 0 \\ u & {\cos \; \theta} & U \\ v & {\sin \; \theta} & V \end{bmatrix}}},} & (4) \end{matrix}$

and its determinant J becomes

$\begin{matrix} {{J = {{\begin{matrix} {\cos \; \theta} & U \\ {\sin \; \theta} & V \end{matrix}} = {{V\mspace{14mu} \cos \; \theta} - {U\mspace{14mu} \sin \; \theta}}}},} & (5) \end{matrix}$

where θ is the flow direction angle; U, V, the stream-function geometry state variables with the dimension [m²s·kg⁻¹], are defined as

$\begin{matrix} {{U = \frac{\partial x}{\partial\xi}},{V = {\frac{\partial y}{\partial\xi}.}}} & (6) \end{matrix}$

Finally, the two-dimensional time-dependent Euler equations (1) have been transformed into the ones in the stream-function plane

$\begin{matrix} {{{\frac{\partial f_{S}}{\partial\tau} + \frac{\partial F_{S}}{\partial\lambda} + \frac{\partial G_{S}}{\partial\xi}} = 0},} & (7) \end{matrix}$

where f_(S), F_(S) and G_(S) have the same definitions as f, F and G in (2) but in the stream-function plane with the subscript S. in detailed,

$\begin{matrix} {{f_{S} = \begin{bmatrix} {\rho \; J} \\ {\rho \; {Ju}} \\ {\rho \; {Jv}} \\ {\rho \; {JE}} \\ U \\ V \end{bmatrix}},{F_{S} = \begin{bmatrix} 0 \\ {Vp} \\ {- {Up}} \\ 0 \\ 0 \\ 0 \end{bmatrix}},{G_{S} = \begin{bmatrix} 0 \\ {- {pS}} \\ {pT} \\ 0 \\ {- u} \\ {- v} \end{bmatrix}},} & (8) \end{matrix}$

with the notations of J in (5) and

$\begin{matrix} {{\theta = {{tg}^{- 1}\left( \frac{v}{u} \right)}},} & (9) \\ {{S = {\sin \; \theta}},} & (10) \\ {T = {\cos \; {\theta.}}} & (11) \end{matrix}$

The equations (7) are called the two-dimensional time-dependent Euler equations in the stream-function formulation. In the equations (8), where the first and fourth elements in the F_(S) and G_(S) are zero, which means that for the computing grid in the stream-function plane there apparently are no convection flux going through the cell interfaces for the continuity and energy equations in ξ-direction, which mostly reduce the error from the approximation to convection flux. Comparing with the equations (1), the equations (7) have the more simple formulation.

Following the publicly known characteristics analysis method for partial difference equation (PDE), we obtain the characteristic curve equations for the equations (7). They are

dλ/dτ=±(a/J)√{square root over (U ² +V ²)};dλ/dτ=0,  (10)

in the λ-direction, and

dξ/dτ=±a/J;dξ/dτ=0,  (11)

in the ξ-direction. In above equations, a is the speed of sound.

The characteristics equations along the characteristic curve (10-11) respectively are

$\begin{matrix} {{{{dp} \pm {\rho \; a\; \frac{\sqrt{U^{2} + V^{2}}}{V}{du}}} = 0};} & (19) \\ {{{dp} \pm {\rho \; a\frac{\sqrt{u^{2} + v^{2}}}{u}{dv}}} = 0.} & (20) \end{matrix}$

In addition, the definition (6) is approximated by,

$\begin{matrix} {{U = \frac{\Delta \; x}{\Delta\xi}},{V = {\frac{\Delta \; y}{\Delta \; \xi}.}}} & (21) \end{matrix}$

Bring (21) into (19) and consider that the equations (7) are with the rotational invariance property, the characteristics equation (19) is rewritten as

$\begin{matrix} {{{dp} \pm {\rho \; a\frac{\sqrt{u^{2} + v^{2}}}{v}{du}}} = 0.} & (22) \end{matrix}$

On the stream-function plane in this invention, the ξ-direction is perpendicular to the streamline. The Riemann problem across the ξ-direction is called the Riemann problem across streamlines. Rewrite (7) only in ξ-direction,

$\begin{matrix} {{{\frac{\partial f}{\partial\tau} + \frac{\partial{G(f)}}{\partial\xi}} = 0},{f = \left\{ \begin{matrix} {f_{L},} & {{\xi < 0},} \\ {f_{R},} & {{\xi > 0},} \end{matrix} \right.}} & (23) \end{matrix}$

where f_(L) and f_(R) are the conservation variables at the left and right state of the cell interface respectively. The FIG. 4 presents the definition of the two-dimensional Riemann problem across streamlines, which is different to the definition in the FIG. 1, since the left and right states and left and right middle states all include the two velocity components, u and v, which both are across the shocks, expansion waves and middle waves expressed by the equations (11). In the Riemann problem, operation with the two velocity component at the same time will reduce the error produced when operation with one-dimensional Riemann problem in two coordinator directions alternatively.

The task is to find the values of the primitive variables p, ρ, u, v from f to obtain G at cell interfaces. The primitive variables are the variables in the middle region in the Riemann problem. a two-dimensional Riemann solver is built as the following procedure.

Connecting the left and right states to the middle state by integrating along the characteristics equations (20), then we have

$\begin{matrix} \left\{ {{{\begin{matrix} {{{p_{*} + {C_{L} \cdot {f\left( {u_{*},v_{*}} \right)}}} = {p_{L} + {C_{L} \cdot {f\left( {u_{L},v_{L}} \right)}}}},} \\ {{{p_{*} - {C_{R} \cdot {f\left( {u_{*},v_{*}} \right)}}} = {p_{R} - {C_{R} \cdot {f\left( {u_{R},v_{R}} \right)}}}},(25)} \\ {{{\rho_{*L} + {{f\left( {u_{*},v_{*}} \right)}\left( {\rho_{L}\text{/}a_{L}} \right)}} = {\rho_{L} + {{f\left( {u_{L},v_{L}} \right)}\left( {\rho_{L}\text{/}a_{L}} \right)}}},\mspace{11mu} (26)} \\ {{{\rho_{*R} + {{f\left( {u_{*},v_{*}} \right)}\left( {\rho_{R}\text{/}a_{R}} \right)}} = {\rho_{R} - {{f\left( {u_{R},v_{R}} \right)}\left( {\rho_{R}\text{/}a_{R}} \right)}}},(27)} \end{matrix}{where}\mspace{14mu} C_{L}} = {\rho_{L}a_{L}}};{C_{R} = {\rho_{R}a_{R}}};{and}} \right. & (24) \\ {{f\left( {u,v} \right)} = {{\frac{1}{2}\frac{v\sqrt{u^{2} + v^{2}}}{u}} + {\frac{1}{2}u\; {{\ln \left( {v + \sqrt{u^{2} + v^{2}}} \right)}.}}}} & (28) \end{matrix}$

f(u, v) is called the combination function, which can be considered as the combination of the velocity component (u, v) in the stream-function plane and have the same role as the velocity term with dimension [m/s]. The (28) has its polar formulation as

$\begin{matrix} {f_{\Delta} = {\left( {V,\theta} \right) = {\frac{V}{2}\left( {{{{tg}\; \theta} + {\cos \; {{\theta ln}\left( \left( {1 + {\sin \; \theta}} \right) \right)}} + {\frac{\cos \; \theta}{2}V\; \ln \; V}},} \right.}}} & (29) \end{matrix}$

with V=√{square root over (u²+v²)}, u=V cos θ, v=V sin θ The solutions of (24-27) give the primitive variables in the middle state. They are

$\begin{matrix} {\quad\left\{ \begin{matrix} {{p_{*} = \frac{{C_{R}p_{L}} + {C_{L}p_{R}} + {C_{L}C_{R}\left\lfloor {{f\left( {u_{L},v_{L}} \right)} - {f\left( {u_{R},v_{R}} \right)}} \right\rfloor}}{C_{L} + C_{R}}},} \\ {{{f\left( {u_{*},v_{*}} \right)} = \frac{{C_{L} \cdot {f\left( {u_{L},v_{L}} \right)}} + {C_{R} \cdot {f\left( {u_{R},v_{R}} \right)}} + \left\lbrack {p_{L} - p_{R}} \right\rbrack}{C_{L} + C_{R}}},\; (31)} \\ {{\rho_{*L} = {\rho_{L} + {\left( {{f\left( {u_{L},v_{L}} \right)} - {f\left( {u_{*},v_{*}} \right)}} \right)\left( {\rho_{L}\text{/}a_{L}} \right)}}}\mspace{11mu},(32)} \\ {\rho_{*R} = {\rho_{R} + {\left( {{f\left( {u_{*},v_{*}} \right)} - {f\left( {u_{R},v_{R}} \right)}} \right){\left( {\rho_{R}\text{/}a_{R}} \right).(33)}}}} \end{matrix} \right.} & (30) \end{matrix}$

To find the velocity components u*, v* either in left or right middle state, the equation (31) need to be solved. Firstly, one can rewrite (31) as

F(u _(*) ,v _(*))=f(u _(*) ,v _(*))−B=0,  (34)

with the known conditions in left and right states,

$\begin{matrix} {B = {\frac{{C_{L} \cdot {f\left( {u_{L},v_{L}} \right)}} + {C_{R} \cdot {f\left( {u_{R},v_{R}} \right)}} + \left\lbrack {p_{L} - p_{R}} \right\rbrack}{C_{L} + C_{R}}.}} & (35) \end{matrix}$

The combination function (28) can be further modified with definition

tgθ _(*)=ε,  (36)

where θ_(*) is the flow angle either in left or right middle state, then

$\begin{matrix} {{{u_{*} = {{V_{*}\cos \; \theta_{*}} = \frac{V_{*}}{\sqrt{1 + ɛ^{2}}}}};}{{v_{*} = {{V_{*}\sin \; \theta_{*}} = \frac{ɛ\; V_{*}}{\sqrt{1 + ɛ^{2}}}}},}} & (37) \end{matrix}$

where V_(*) is the velocity magnitude either in the left or right middle state. Further, the equation (34) can be finalized as a function of c

$\begin{matrix} {{F(ɛ)} = {{{\frac{V_{*}}{2}\left( {ɛ + \frac{{\ln \; V_{*}} + {\ln \left( {\sqrt{1 + ɛ^{2}} + ɛ} \right)} - {\ln \sqrt{1 + ɛ^{2}}}}{\sqrt{1 + ɛ^{2}}}} \right)} - B} = 0.}} & (38) \end{matrix}$

The work needs to do is numerically to solve the equation F(ε)=0 with a given velocity V_(*) to find ε for θ_(*). The equation (38) does have the differentiability and its first-order derivative is

$\begin{matrix} {{F^{\prime}(ɛ)} = {\frac{V_{*}}{2}{\left( \frac{\begin{matrix} {{\left( {2 + ɛ^{2}} \right)\sqrt{1 + ɛ^{2}}} - ɛ -} \\ {ɛ\left( {{\ln \; V_{*}} + {\ln \left( {\sqrt{1 + ɛ^{2}} + ɛ} \right)} - {\ln \sqrt{1 + ɛ^{2}}}} \right)} \end{matrix}}{\left( {1 + ɛ^{2}} \right)^{3/2}} \right).}}} & (39) \end{matrix}$

Numerical experiments show that for the non-dimensional velocity V_(*)≦5 (subsonic flows) and ε∈[−1,1], F′(ε)>0, which means that the function F(ε) is monotone within this domain; in the mean time, F(−ε)·F(ε)<0, so that the Newton-Raphson iteration as a root-finding algorithm is a good way to find the roots for the equation (38) with a given V_(*).

To find the value of K, the non-linear waves (shear, shock and expansion waves) in Riemann problem have to be recovered with the approximate values of p_(*), ρ_(*L), ρ_(*R). In this invention, the following relations are considered:

(1) Rankine-Hugoniot Relations Across Shocks

If a shock wave appears between one state (say left) and the corresponding middle state, the Rankine-Hugoniot relations can be used to the left state and middle state across this shock. They are,

$\begin{matrix} \left\{ \begin{matrix} {{{\mu_{s}\left( {{\rho_{L}J_{L}} - {\rho_{*L}J_{*L}}} \right)} = 0},} \\ {{{\mu_{s}\left( {{\rho_{L}J_{L}E_{L}} - {\rho_{*L}J_{*L}E_{*L}}} \right)} = 0},\; (41)} \end{matrix} \right. & (40) \end{matrix}$

where μ_(s) is the shock wave speed, J_(*L) and E_(*L) are J (transformation Jacobian) and E (total energy) in the middle state respectively. From (40) and (41), one receive that

$\begin{matrix} {{V_{*L} = \sqrt{V_{L} + {\frac{1}{\gamma - 1}\left( {\frac{p_{L}}{\rho_{L}} - \frac{p_{*}}{\rho_{*L}}} \right)}}}{and}} & (42) \\ {V_{*R} = {\sqrt{V_{R} + {\frac{1}{\gamma - 1}\left( {\frac{p_{R}}{\rho_{R}} - \frac{p_{*}}{\rho_{*R}}} \right)}} \circ}} & (43) \end{matrix}$

Velocity absolute value V_(*L) or V_(*R) can be substituted into (38) to receive θ_(*L) or θ_(*R).

(2) Enthalpy Constants Across Expansion Waves

If an expansion wave appears between one state (say left) and the corresponding middle state, the connection between the two states can be found by considering the enthalpy constant across the waves. Ones have

$\begin{matrix} {{H_{L} = {{{\frac{1}{2}V_{L}} + {\frac{\gamma}{\gamma - 1}\frac{p_{L}}{\rho_{L}}}} = {{{\frac{1}{2}V_{*L}} + {\frac{\gamma}{\gamma - 1}\frac{p_{*}}{\rho_{*L}}}} = H_{*L}}}},} & (44) \end{matrix}$

from which the velocity magnitude can be found as

$\begin{matrix} {V_{*L} = \sqrt{{2H_{L}} - {\frac{2\gamma}{\gamma - 1}\frac{p_{*}}{\rho_{*L}}}}} & (45) \\ {{and}{V_{*R} = {\sqrt{{2H_{R}} - {\frac{2\gamma}{\gamma - 1}\frac{p_{*}}{\rho_{*R}}}}.}}} & (46) \end{matrix}$

The selection of the non-linear waves is based on the wave-type conditions, in which the values of pressure in left, right and middle states are used to judge what non-linear wave could appearing in the Riemann problem. Assuming

p _(min)=min(p _(L) ,p _(R));  (47)

p _(max)=max(p _(L) ,p _(R)),  (48)

which, as well as p_(*), form the following wave-type choosing conditions:

-   -   (1) if p_(min)<p_(*)<P_(max), which means in the Riemann problem         one shock wave in the state with p_(min) and one expansion wave         in the state with max P_(max).     -   (2) if p_(*)≧p_(max), which means there are two shock waves;     -   (3) if p_(*)≦p_(min), which means there are two expansion waves.

After θ_(*) is obtained, we can find G_(L) according to (9) with u_(*L), v_(*L) or u_(*R), v_(*R) from (36), as well as p_(*). At the same time, the updated values can be found from the discretized equation (23),

$\begin{matrix} {{f_{i,j}^{n + {1/2}} = {f_{i,j}^{n} - {\frac{\Delta\tau}{\Delta\xi}\left\lbrack {{G\left( f_{i,{j + {1/2}}}^{n} \right)} - {G\left( f_{i,{j - {1/2}}}^{n} \right)}} \right\rbrack}}},} & (49) \end{matrix}$

where, i, j are the index of computing cell in λ and ξ direction, n is the time step. Meanwhile, the stream-function geometry state variables are updated till n+½,

$\begin{matrix} {\begin{bmatrix} U_{i,j}^{n + {1/2}} \\ V_{i,j}^{n + {1/2}} \end{bmatrix} = {\begin{bmatrix} U_{i,j}^{n} \\ V_{i,j}^{n} \end{bmatrix} + {{\frac{\tau_{i,j}^{n}}{{\Delta\xi}_{i,j}}\begin{bmatrix} {u_{i,{j + {1/2}}}^{n + {1/2}} - u_{i,{j - {1/2}}}^{n + {1/2}}} \\ {v_{i,{j + {1/2}}}^{n + {1/2}} - v_{i,{j - {1/2}}}^{n + {1/2}}} \end{bmatrix}} \circ}}} & (50) \end{matrix}$

In the same way, the λ-direction is parallel with the streamline. The Riemann problem along the λ-direction is called the Riemann problem along streamlines. Rewrite (7) only in λ-direction,

$\begin{matrix} {{{\frac{\partial f}{\partial\tau} + \frac{\partial{F(f)}}{\partial\lambda}} = 0},{f = \left\{ \begin{matrix} {f_{L},} & {{\lambda < 0},} \\ {f_{R},} & {{\lambda > 0},} \end{matrix} \right.}} & (51) \end{matrix}$

where all symbols have the same meaning with those in equation (23). The FIG. 5 shows the definition of the two-dimensional Riemann problem along streamline. similarly, the left and right states and left and right middle states all include the two velocity components, u and v, which both are across the shocks, expansion waves and middle waves expressed by the equations (10). The procedure to solve this problem is same as that shown in (24-50) but with replacement of u with v, sin θ with cos θ, tgθ with ctgθ. At the same time, the updated values can be found from the discretized equation (51),

$\begin{matrix} {f_{i,j}^{n + 1} = {f_{i,j}^{n + {1/2}} - {{\frac{\Delta\tau}{\Delta\lambda}\left\lbrack {{F\left( f_{{i + {1/2}},j}^{n} \right)} - {F\left( f_{{i - {1/2}},j}^{n} \right)}} \right\rbrack}.}}} & (52) \end{matrix}$

Finally, the stream-function geometry state variables are updated till n+1,

$\begin{matrix} {\begin{bmatrix} U_{i,j}^{n + 1} \\ V_{i,j}^{n + 1} \end{bmatrix} = {\begin{bmatrix} U_{i,j}^{n + {1/2}} \\ V_{i,j}^{n + {1/2}} \end{bmatrix} + {{\frac{{\Delta\tau}_{i,j}^{n}}{{\Delta\lambda}_{i,j}}\begin{bmatrix} {u_{{i + {1/2}},j}^{n + 1} - u_{{i - {1/2}},j}^{n + 1}} \\ {v_{{i + {1/2}},j}^{n + 1} - v_{{i - {1/2}},j}^{n + 1}} \end{bmatrix}}.}}} & (53) \end{matrix}$

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 (a) is the physical model of the Riemann problem, where 1 present one-dimensional tube, 2 does diaphragm.

FIG. 1 (b) is the definition of the Riemann problem.

FIG. 2 (a) is the interfaces of the computing cell and the velocity vector.

FIG. 2 (b) is the velocity decomposition in the Riemann problem for the multi-dimensional computation.

FIG. 3 is the scheme of transformation from the Euler plane to the stream-function plane.

FIG. 4 is the definition of the Riemann problem across streamlines.

FIG. 5 is the definition of the Riemann problem along streamlines.

FIG. 6 is the solution by the invented method.

-   -   (a) Computing grid in the stream-function plane     -   (b) Computing grid in the Eulerian plane     -   (c) Streamlines by the invented method     -   (d) Streamlines by the Eulerian solution     -   (e) Comparison of the pressure distributions by the invented         method and the exact solution on the bottom solid-wall boundary     -   (f) Computing grid built by the invented

PREFERRED EMBODIMENT

According to the numerical method discussed above, a complete solution to the inviscid subsonic two-dimensional flow by using the Euler equations will be performed.

This example is about the subsonic flow passing through a two-dimensional parabolic divergent nozzle with length L and inlet height in H_(in), whose geometry is defined as the two parts of parabolic curves

$\begin{matrix} {{H(x)} = \left\{ \begin{matrix} {{- {ax}^{2}},} & {{0 \leq x < {L/2}};} \\ {{{a\left( {x - L} \right)}^{2} - b},} & {{{L/2} \leq x \leq L},} \end{matrix} \right.} & (54) \end{matrix}$

where H_(in)=L/3, a=H_(in)/2, b=H_(in)/L. The Mach number of the inviscid flow at the nozzle inlet is M_(in)=0.5. The flow is the pure subsonic flow. The Euler equations in stream-function formulation (7) will be solved by the numerical method presented in this invention. The finite volume method (FVM) is used to the spatial discretization. The second-order upwind MUSCL extrapolation with minmod limiter and the Strang dimensional-splitting of second-order accuracy in time are used. The computing parameters: CFL=0.48; totally 60×20 uniform cells in the stream-function plane. The computing results will be compared with those obtained from the publicly known JST method in the Eulerian plane and the exact solutions. In detail, the computations are taken as the following steps

-   (1) Initialization. The flow field variables Q⁰=[ρ⁰, u⁰, v⁰, p⁰]^(T)     are known as the initial conditions as well as where U⁰, V⁰ take the     values at the infinite and U⁰=0; V⁰=1. The superscript 0 means that     the initial conditions of a flow problem are given at t=0 (τ=0) in     x-y plane and λ-ξ plane. Subsequently, the conservation variables f⁰     are available. Then an appropriate rectangular λ-ξ coordinate mesh     with uniform spatial step (Δλ, Δξ) is formed. The corresponding mesh     in x-y plane is laid on according to

dx=cos θdλ;dy=sin θdλ  (55)

-   (2) Calculate the time-step with CFL<0.5,

$\begin{matrix} {{{\Delta\tau} = {{CFL} \cdot {\max\left( {\frac{\Delta\lambda}{{{\left( {1 - h} \right)\sqrt{u^{2} + v^{2}}} + {\left( {a/J} \right)\sqrt{U^{2} + V^{2}}}}},\frac{\Delta\xi}{{a/J}}} \right)}}},} & (56) \end{matrix}$

with

J=UT−VS,  (57)

where S=sin θ^(n−1), T=cos θ^(n−1). θ^(n−1) is from previous time-step.

-   (3) Solve the equation (51) along λ-direction by solving the     two-dimensional Riemann problem along streamlines to update f_(i,j)     ^(n) to f_(i,j) ^(n+1/2). -   (4) Solve the equation (23) along ξ-direction by solving the     two-dimensional Riemann problem across streamlines to update f_(i,j)     ^(n+1/2) to f_(i,j) ^(n+1). -   (5) Update the stream-function geometry state variables. -   (6) Find the physical primitive variable values [p, ρ, u, v]_(i,j)     ^(n+1) at the new time step by decoding from the conservation     variables f_(i,j)=[f₁, f₂, f₃, f₄]_(i,j) ^(n+1) to obtain

$\begin{matrix} {{{\rho = \frac{f_{1}}{J}};}{{u = \frac{f_{2}}{f_{1}}};}{{v = \frac{f_{3}}{f_{1}}};}{p = {\frac{\left( {\gamma - 1} \right)}{J}{\left( {f_{4} - \frac{f_{2}^{2} + f_{3}^{2}}{2f_{1}}} \right).}}}} & (58) \end{matrix}$

-   Build grid. The grid points are given by

x _(i,j) ^(n+1) =x _(i,j) ^(n)+1/2Δτ_(i,j) ^(n)(hu _(i,j) ^(n) +hu _(i,j) ^(n+1));y _(i,j) ^(n+1) =y _(i,j) ^(n)+1/2Δτ_(i,j) ^(n)(hv _(i,j) ^(n) +hv _(i,j) ^(n+1)).  (59)

-   (8) Loop (2) until the conservation variables or primitive variables     go to convergence.

In the FIG. 6, The solution by the invented method starts from the rectangular computing grid with Lagrangian distance in λ-direction and stream function in direction in the FIG. 6 (a). The streamlines shown in the FIG. 6 (c) by the invented method agreed well with the solution by JST in the FIG. 4 (d). The pressure distributions on the solid-wall shown in the FIG. 4 (e) totally agreed with the exact solution. The computing grid used in the Eulerian coordinates in the FIG. 4(b) has little difference with that built by the invented method, where the lines along x-direction are streamlines and the lines along y-direction are not perpendicular to x-direction to preserve the length of the streamlines. It is worth to indicate that the final computing grid in the FIG. 4 (f) evolves from the initial computing grid in the FIG. 4 (a), and its lines are the streamlines themselves.

REFERENCE

-   [1] Godunov, S. K.: A difference scheme for numerical computation     discontinuous solution of hydrodynamic equations. Translated US     Publ. Res. service, JPRS 7226, 1969. 

What is claimed is:
 1. A computer implemented numerical method for solving the two-dimensional Riemann problem to simulate inviscid subsonic flows, comprises following steps: (1) transforming the two-dimensional Euler equations in the Eulerian plane, using a transforming matrix with Jacobian ${J = \begin{bmatrix} 1 & 0 & 0 \\ u & {\cos \; \theta} & U \\ v & {\sin \; \theta} & V \end{bmatrix}},$ into a stream-function formulation in a stream-function plane expressed by a time τ-direction (direction), a stream-function ξ-direction and a particle traveling distance λ-direction, so-called two-dimensional Euler equations in the stream-function formulation in the stream-function plane formally are ${{\frac{\partial f_{s}}{\partial\tau} + \frac{\partial F_{s}}{\partial\lambda} + \frac{\partial G_{s}}{\partial\xi}} = 0},$  where f_(S) is conservation variables vector; F_(S) and G_(S) are respectively convection flux along the λ-direction and ξ-direction in the stream-function plane, and, ${f_{s} = \begin{bmatrix} {\rho \; J} \\ {\rho \; {Ju}} \\ {\rho \; {Ju}} \\ {\rho \; {JE}} \\ U \\ V \end{bmatrix}},{F_{s} = \begin{bmatrix} 0 \\ {V\; p} \\ {{- U}\; p} \\ 0 \\ 0 \\ 0 \end{bmatrix}},{G_{s} = \begin{bmatrix} 0 \\ {{- p}\; \sin \; \theta} \\ {p\; \cos \; \theta} \\ 0 \\ {- u} \\ {- v} \end{bmatrix}},{\theta = {{tg}^{- 1}\left( \frac{v}{u} \right)}},$  where ρ, p and E are respectively density, pressure and total energy; u, v are two velocity components in the Cartesian coordinator system; U, V are two stream-function geometry state variables; (2) building a computing grid; (3) solving a two-dimensional Riemann problem on every interfaces of computing cells formed by the computing grid when numerically solving the time-dependent two-dimensional Euler equations in the stream-function formulation in the stream-function plane.
 2. The method of claim 1, wherein said computing grid is a rectangular grid constructed with the λ-direction and ξ-direction in the stream-function plane.
 3. The method of claim 1, wherein said solving the time-dependent two-dimensional Euler equations in the stream-function formulation in the stream-function plane needs to literately update the conservation variable f_(S) along the τ-direction until obtaining a steady f_(S).
 4. The method of claim 1, wherein said solving a two-dimensional Riemann problem on every interfaces of computing cells formed by the computing grid when numerically solving the time-dependent two-dimensional Euler equations in the stream-function formulation in the stream-function plane needs solving a Riemann problem across streamlines and a Riemann problem along streamline to calculate the convection flux on the interfaces of the computing cells.
 5. The method of claim 4, wherein said Riemann problem across streamlines and Riemann problem along streamline have the following properties: there existing a left state and a right state expressed by shocks or expansion waves on two sides of the computing cells; between the two states there existing a middle state, which is divided as a left middle state and a right middle state.
 6. The method of claim 4, wherein said solving the Riemann problem across streamlines and the Riemann problem along streamline comprises following steps: (1) Connecting the left and right states to the middle state by integrating along characteristic equations of the Euler equations in stream-function formulation, where the left, right and middle states are given in claim 5; (2) Recovering velocity magnitude in the middle state; (3) Solving a combination function f(u, v) to find flow angle in the middle state; (4) Finding the velocity component in the star state.
 7. The method of claim 6, wherein said recovering the velocity magnitude in the middle state, is implemented according to the Rankine-Hugoniot relations across shocks and the Enthalpy constants across expansion waves.
 8. The method of claim 6, wherein said combination function f(u, v) is expressed as ${f\left( {u,v} \right)} = {{\frac{1}{2}\frac{v\sqrt{u^{2} + v^{2}}}{u}} + {\frac{1}{2}u\; {{\ln \left( {v + \sqrt{u^{2} + v^{2}}} \right)}.}}}$ 